ChatGPT APIと自動化ツールを組み合わせて記事の翻訳と要約をしてくれるワークフローを作ってみた
ChatGPTの初学者、prismatix 事業部の中村です。
自動化ツールの Make と ChatGPT API が簡単に連携できるようになっていたので試してみました。
Make について
Make(旧:Integromat) は世の中の様々なSaaSを簡単に繋ぎ合わせることができる自動化ツールです。 ブラウザ上でワークフローを構築することができ、コーディングはほぼ不要です。
Make にはSaaSと簡単に繋げるためのモジュールが沢山用意されており、LINE や Slack, Gmail 等と繋ぎ合わせることができます。 ChatGPT API と繋ぐモジュールも追加されたようなので、今回はそれを使ってみます。
細かい設定は弊社の記事を参考にしてください。
試したシナリオ
Make では一連のフローをシナリオとして登録することができ、その中に配置する一つ一つの操作をモジュールと呼ぶようです。 各モジュールで処理を行い次のモジュールにデータを渡すというのを繰り返し構築していきます。
今回作ったシナリオは下記で、RSSを取得して翻訳し要約したのをLINE通知してもらいます。
左から順に
- AWS ニュースブログのRSSを取得
- Text parser でRSSレスポンスからHTMLタグを除去
- ChatGPT API に本文を要約するようリクエスト
- LINE Notifyで自分宛てに通知
となっています。1つずつ見ていきます。
RSS取得
Make のモジュール設定は簡単で、利用したいモジュールをクリックするだけで設定項目が表示されます。 今回は AWS ニュースブログ RSSを取得したかったのでURLを指定し、取得件数は一旦1にしました。
Text parser
AWS ニュースブログ RSSのレスポンスを見ると、 Description
に本文が入っていたのですがHTMLタグも混在しており、ノイズになるので除去します。
Text parser モジュールでタグ除去までやってくれるようなので、設置してRSSモジュールからデータを受け取るよう繋いで設定します。
HTMLのフォームにRSSのレスポンス項目 Description
を指定することで、取得した RSS レスポンスの Description
の内容が Text parser モジュールに渡されて、除去された本文が次のモジュールに渡されます。
ChatGPT API
HTMLタグが除去されて本文を抽出できたので、ChatGPT API に渡します。 OpenAI モジュール では、ChatGPT API の下記を実行できるようです。
- Create a Completion
- 提供されたプロンプトまたはチャットに対する補完を作成します。
- Create a Moderation
- テキストがOpenAIのコンテンツポリシーに違反しているかどうかを分類します。
- Create an Edit
- 与えられた入力、指示、パラメータに対して新しい編集を作成する。
- Generate an Image
- プロンプトを指定すると、DALL-Eが描かれた画像を生成します。
- Make an API Call
- 任意の認可APIコールを実行する。
今回は Create a Completion
を利用します。
モジュールを設置してから最初に OpenAI への設定をする必要があります。
「API Key」「Organization ID」を公式から取得しフォームに貼り付けるだけです。
次はAPIの設定です。 私は下記のように設定してみました。
Model に gpt-3.5-turbo-0301
を指定し、 System Role には弊社の記事を参考にプロンプトを記載してみました。
与えられたフィードの情報を、以下の制約条件をもとに要約を出力してください。 制約条件: ・文章は簡潔にわかりやすく。 ・箇条書きで3行で出力。 ・要約した文章は日本語へ翻訳。 ・最終的な結論を含めること。 期待する出力フォーマット: 1. 2. 3.
User Role にてHTML タグを除去した本文(text
)を指定するのですが、全文入れると長くなりトークンエラーが発生します。
なので substring() を利用して、3000文字ほどに削ってた本文を指定します。
これだけで、ChatGPT API を呼び出してくれます。
LINE への通知
LINE への通知は LINE notifyを利用します。 LINEモジュールを追加し、「Send a Notification」 というアクションを選択すれば LINE の設定画面のリダイレクトされるので、そこでログインして通知したいチャンネルを指定するだけです。
通知内容に関しては、 ChatGPT API のレスポンスとURLを貼り付けているだけです。
動かしてみる
Make にはテスト用に Run once
というボタンが用意されていますので試してみると、このように通知が届きました。
AWS Week in Review – March 20, 2023 の要約らしいですね。 実際の記事をみると、S3 Object Lambda や Outposts について記載されてるので要約出来てそうですが、3000文字に削った影響か後半の Neptune やKendra 等は要約に含まれていませんね。 これは今後取り扱えるトークン数が増えることに期待しましょう。
作成したシナリオは、RSS に新しいItemが追加された時やスケジュール実行することも可能なので、記事が追加される度に要約を読むことができます。
まとめ
ChatGPT API と Make を繋ぎ合わせてノーコードで要約をLINE通知することができました。 今回はRSSをトリガーにしましたが、これを他のアプリケーション、例えばSlackやGmailやカレンダーにすることも可能ですし、出力先も柔軟に変更可能です。
UIもシンプルで分かりやすいので、システムに詳しくなくてもさくっと作れるのはすごいですね。 是非みなさんも試してみてください。